<?php

/**
 * Default_BackupController
 * 
 * Контроллер, который отвечает за бэкапы сайта.
 * Пока - тут будет только бэкапер базы, вскором времени появится 
 * и бэкапер юзерского контента.
 * 
 * @package   Basic 
 * @author    Игорь Будасов aka Lord <igor.budasov@gmail.com> 
 * @copyright Игорь Будасов aka Lord <igor.budasov@gmail.com> 
 */
 
class BackupController extends Lord_Controller_Action 
{
	
/*------------------------------------------------------------------------------*/

	/**
	 * Отображает список файлов бэкапа
	 */
	 
	public function indexAction() 
	{   
		// инстанцируем модель
		$model = new Basic();
		// получаем все записи
		$backups = $model->getAllBackups();
		// отправляем в шаблон
		$this->view->backups = $backups;
		// ок
		return;
	}

/*------------------------------------------------------------------------------*/

	/**
	* Создание дампа базы
	*/
	
	public function baseAction()
	{
		// читаем конфиг
		$config = $this->_helper->config();
		$model = new Backup();
		// инстанцируем дампер
		$dumper = new MySQLDump();
		// получаем из конфига название нашей БД
		$dataBase = $config->db->params->dbname;
		// получаем строку с дампом
		$dump = $dumper->dumpDatabase($dataBase, $config);
		// создаем файл для дампа
        $path = 'temporary/backup/';
		$file = 'base_dump_'.time().'.sql';
		// открываем файл
		if (!$handle = fopen($path . $file, 'w+')) {
			// если не получилось открыть - прерываем процесс
			$this->view->err = $this->view->translate('default_backup_base_fail');
			return;
		}
		// пишем в файл
		if (fwrite($handle, $dump) === FALSE) 
		{
			// если не получилось написать - прерываем процесс
			$this->view->err = $this->view->translate('default_backup_base_fail');
			return;
		}
		// закрываем файл
		fclose($handle);
		// добавим информацию о файле в базу данных
		$date = date('Y-m-d G:i:s');
		$dumpData['date']        = $date;
		$dumpData['file']        = $file;
		$dumpData['filesize']    = filesize($path . $file);
		$dumpData['description'] = $this->view->translate('default_backup_base_restore')
								 . $date;
		$model->insert($dumpData);
	}

/*------------------------------------------------------------------------------*/

}